package oop.basicConcept;

/*
    定义一个Hero类
    属性有 power,name，分别代表体力值和英雄的名子，体力值默认为100
    方法有
        void go();
        void eat(int n);
        void hurt();
 */
public class Hero {

    public int power = 100;
    public String name;

    //行走的方法，如果体力值为0，则输出不能行走，此英雄已死亡的信息
    public void go(){
        int p = this.power;
        if(p<=0){
            System.out.println("不能行走，"+this.name+"英雄已死亡");
        }else{
            System.out.println(this.name+"英雄向前行走");
        }
    }

    //吃的方法，参数是补充的血量，将 n的值加到属性power中，power的值最大为100，
    public void eat(int n){
        int p = this.power;
        p = p+n;
        if(p>100){
            this.power = 100;
        }else{
            this.power = p;
        }
    }

    //每受到一次伤害，体力值－10，体力值最小不能小于0
    public void hurt(){
        int p = this.power;
        p = p-10;
        if(p<0){
            this.power = 0;
        }else{
            this.power = p;
        }
    }

    public static void main(String[] args) {
        Hero h = new Hero();

        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();

        System.out.println(h.power);

        h.eat(30);
        System.out.println(h.power);

        h.eat(50);
        System.out.println(h.power);
        h.go();

        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();
        h.hurt();

        System.out.println(h.power);

        h.go();
    }

}
